package in.lib.view.spannable;
import in.lib.Constants;
import in.lib.helper.ThemeHelper;
import in.lib.manager.SettingsManager;
import in.rob.client.R;
import in.rob.client.SearchResultsActivity;
import in.rob.client.dialog.base.DialogBuilder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.view.View;
public class HashtagClickableSpan extends NotUnderlinedClickableSpan
{
private final String mTagName;
public HashtagClickableSpan(String tagName)
{
mTagName = tagName;
}
@Override public void onSimpleClick(View widget)
{
super.onSimpleClick(widget);
openHashtag(widget.getContext());
}
private void openHashtag(Context ctx)
{
Intent intent = new Intent(ctx, SearchResultsActivity.class);
intent.putExtra(Constants.EXTRA_TAG_NAME, "#" + mTagName);
SettingsManager manager = SettingsManager.getInstance();
manager.addSearchHistory("#" + mTagName);
ctx.startActivity(intent);
}
@Override public void onLongClick(View widget)
{
final Context ctx = widget.getContext();
final Boolean saved = SettingsManager.isTagSaved(mTagName);
final Boolean muted = SettingsManager.isTagMuted(mTagName);
DialogBuilder.create(ctx)
.setIcon(ThemeHelper.getDrawableResource(ctx, R.attr.rbn_dialog_icon_hashtag))
.setTitle("#" + mTagName)
.setItems(new CharSequence[]
{
ctx.getString(R.string.open_hashtag),
saved ? ctx.getString(R.string.unsave_hashtag) : ctx.getString(R.string.save_hashtag),
muted ? ctx.getString(R.string.unmute_hashtag) : ctx.getString(R.string.mute_hashtag)
},
new OnClickListener()
{
@Override public void onClick(DialogInterface dialog, int which)
{
SettingsManager settings = SettingsManager.getInstance();
if (which == 0)
{
openHashtag(ctx);
}
else if (which == 1)
{
if (saved)
{
settings.unsaveTag(mTagName);
}
else
{
settings.saveTag(mTagName);
}
}
else if (which == 2)
{
if (muted)
{
settings.unmuteTag(mTagName);
}
else
{
settings.muteTag(mTagName);
}
//((Activity)ctx).setResult(Constants.RESULT_REFRESH, new Intent().putExtra(Constants.EXTRA_REFRESH_MUTED, true));
}
}
})
.show();
}
}